package com.crane.oss.sys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.crane.common.core.dto.SessUser;
import com.crane.oss.sys.bean.request.menu.AddApiRequest;
import com.crane.oss.sys.bean.request.menu.QueryApiRequest;
import com.crane.oss.sys.bean.request.menu.UpdateApiRequest;
import com.crane.oss.sys.bean.resp.ApiBean;

import java.util.List;

/**
 * 接口定义
 *
 * @author bealon
 * @email ccsu123456@qq.com
 * @date 2019年01月03日 14时07分33秒
 */
public interface ApiService {
    /**
     * 查询api详情
     *
     * @param apiId
     * @return
     */
    ApiBean queryApi(Long apiId);

    /**
     * 查询api列表
     *
     * @param request
     * @return
     */
    IPage<ApiBean> queryList(QueryApiRequest request);

    /**
     * 新增api列表
     *
     * @param request
     * @param opUser
     * @return
     */
    int save(AddApiRequest request, SessUser opUser);

    /**
     * 修改api列表
     *
     * @param request
     * @param opUser
     * @return
     */
    int update(UpdateApiRequest request, SessUser opUser);

    /**
     * 删除api
     *
     * @param apiId
     * @return
     */
    int delete(Long apiId);

    /**
     * 根据菜单id获取接口权限信息
     *
     * @param menuId
     * @return
     */
    List<ApiBean> queryApiListByMenuId(Long menuId);

    /**
     * 根据用户获取接口权限信息
     *
     * @param userId
     * @return
     */
    List<ApiBean> queryApiListByUser(Long userId);

}
